Ceph存储概述
Ceph主存储是一个统一的分布式存储系统,设计初衷是向用户提供具有较好性能、高可靠性和高扩展性的存储产品。本章节主要介绍Ceph存储的构成和优势。
1.1 Ceph架构
Ceph共支持三种接口
- Object(对象):有原生的API,而且也兼容Swift和S3的API。
- Block(块):支持精简配置、快照、克隆。
- File(文件):Posix接口,支持快照。
核心组件
Ceph存储系统由以下核心组件构成:
Monitor 一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。
OSD OSD全称Object Storage Device,是负责响应客户端请求返回具体数据的进程。一个Ceph集群通常有多个OSD。
MDS MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。
Object Object是Ceph最底层的存储单元,Object中包含元数据和原始数据。
PG PG全称Placement Grouops,是一个逻辑的概念,一个PG中含有多个OSD。引入此概念便于分配数据和定位数据。
RADOS RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用于实现数据分配、Failover等集群操作。
Libradio Librados是RADOS提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过Librados访问的目前提供PHP、Ruby、Java、Python、C和C++支持。
CRUSH CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。
RBD RBD全称RADOS Block Device,是Ceph对外提供的块设备服务。
RGW RGW全称RADOS Gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。
CephFS CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。
1.2 Ceph存储特点
Ceph存储有以下优点:
高性能
摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高。
考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。
能够支持上千个存储节点的规模,支持TB到PB级的数据。
高可用性
- 副本数可以灵活控制。
- 支持故障域分隔,数据强一致性。
- 多种故障场景自动进行修复自愈。
高可扩展性
- 去中心化。
- 扩展灵活。
- 随着节点增加而线性增长。
特性丰富
- 支持三种存储接口:块存储、文件存储、对象存储。
- 支持自定义接口,支持多种语言驱动。